home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / Emperor_ / Emperor / Scripts / Editor.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2002-10-28  |  8.1 KB  |  250 lines

  1. /* $VER: Emperor_CED.script 4.5  (7.10.2002)   */
  2. /* written anno 2000-2002 by Matthias Gietzelt */
  3. /* script to:                                  */
  4. /* + open                                      */
  5. /* + save                                      */
  6. /* + edit                                      */
  7. /* + navigate                                  */
  8. /* + handle                                    */
  9.  
  10. PARSE ARG mode value
  11.  
  12. ADDRESS 'rexx_ced'
  13.  
  14. OPTIONS RESULTS
  15.  
  16. result = 0
  17.  
  18. /* defined procedures */
  19. COMMAND_GETLINE               = 0
  20. COMMAND_GETCOLUMN             = 1
  21. COMMAND_GETPOSITION           = 2
  22. COMMAND_CURSORUP              = 100
  23. COMMAND_CURSORDOWN            = 101
  24. COMMAND_TOFRONT               = 102
  25. COMMAND_MATCHINGBRACKET       = 103
  26. COMMAND_MARKON                = 104
  27. COMMAND_MARKOFF               = 105
  28. COMMAND_CUT                   = 106
  29. COMMAND_COPY                  = 107
  30. COMMAND_PASTE                 = 108
  31. COMMAND_ERASE                 = 109
  32. COMMAND_DELETEALL             = 110
  33. COMMAND_UNDO                  = 111
  34. COMMAND_REDO                  = 112
  35. COMMAND_POS_SOW               = 113
  36. COMMAND_POS_EOW               = 114
  37. COMMAND_POS_SOL               = 115
  38. COMMAND_POS_EOL               = 116
  39. COMMAND_POS_SOF               = 117
  40. COMMAND_POS_EOF               = 118
  41. COMMAND_NEXT_WORD             = 119
  42. COMMAND_NEXT_SENTENCE         = 120
  43. COMMAND_NEXT_PARAGRAPH        = 121
  44. COMMAND_NEXT_PAGE             = 122
  45. COMMAND_PREV_WORD             = 123
  46. COMMAND_PREV_SENTENCE         = 124
  47. COMMAND_PREV_PARAGRAPH        = 125
  48. COMMAND_PREV_PAGE             = 126
  49. COMMAND_GOTOBOOKMARK1         = 127
  50. COMMAND_GOTOBOOKMARK2         = 128
  51. COMMAND_GOTOBOOKMARK3         = 129
  52. COMMAND_GOTOBOOKMARK4         = 130
  53. COMMAND_SETBOOKMARK1          = 131
  54. COMMAND_SETBOOKMARK2          = 132
  55. COMMAND_SETBOOKMARK3          = 133
  56. COMMAND_SETBOOKMARK4          = 134
  57. COMMAND_UPPERLOWERMARK        = 135
  58. COMMAND_UPPERLOWERWORD        = 136
  59. COMMAND_UPPERLOWERCHAR        = 137
  60. COMMAND_LOWERMARK             = 138
  61. COMMAND_LOWERWORD             = 139
  62. COMMAND_LOWERCHAR             = 140
  63. COMMAND_UPPERMARK             = 141
  64. COMMAND_UPPERWORD             = 142
  65. COMMAND_UPPERCHAR             = 143
  66. COMMAND_LEAVE                 = 144
  67. COMMAND_START                 = 145
  68. COMMAND_JUMPTOLINE            = 200
  69. COMMAND_JUMPTOCOLUMN          = 201
  70. COMMAND_JUMPTOBYTE            = 202
  71. COMMAND_INSERTTEXT            = 203
  72. COMMAND_INSERTMODE            = 204
  73. COMMAND_SAVE                  = 205
  74. COMMAND_OPEN                  = 206
  75. COMMAND_MACRO_MARKALL         = 300
  76. COMMAND_MACRO_MARKTHISWORD    = 301
  77. COMMAND_MACRO_MARKNEXTWORD    = 302
  78. COMMAND_MACRO_MARKPREVWORD    = 303
  79. COMMAND_MACRO_MARKLINE        = 304
  80. COMMAND_MACRO_MARKLINEBEGIN   = 305
  81. COMMAND_MACRO_MARKLINEEND     = 306
  82. COMMAND_MACRO_MARKTOPTOCURSOR = 307
  83. COMMAND_MACRO_MARKCURSORTOEND = 308
  84.  
  85. if mode = COMMAND_START then do
  86.    if ~show('P', "rexx_ced") then address command value
  87.    else OPEN NEW
  88. end
  89.  
  90. if show('P', "rexx_ced") then do
  91.    select
  92.       when mode = COMMAND_GETLINE then STATUS CURSORLINE
  93.       when mode = COMMAND_GETCOLUMN then STATUS CURSORCOLUMN
  94.       when mode = COMMAND_GETPOSITION then do
  95.          STATUS LINEBUFFEROFFSET
  96.          buffer = result 
  97.          STATUS CURSORCOLUMN
  98.          result = buffer + result
  99.          end
  100.       when mode = COMMAND_CURSORUP then UP
  101.       when mode = COMMAND_CURSORDOWN then DOWN
  102.       when mode = COMMAND_TOFRONT then CEDTOFRONT
  103.       when mode = COMMAND_MATCHINGBRACKET then FIND MATCHING BRACKET
  104.       when mode = COMMAND_MARKON then do
  105.          MARK
  106.          if RESULT = 0 then MARK
  107.          end
  108.       when mode = COMMAND_MARKOFF then do
  109.          MARK
  110.          if RESULT = 1 then MARK
  111.          end
  112.       when mode = COMMAND_CUT then CUT
  113.       when mode = COMMAND_COPY then COPY
  114.       when mode = COMMAND_PASTE then PASTE
  115.       when mode = COMMAND_ERASE then CUT
  116.       when mode = COMMAND_DELETEALL then CLEAR 1
  117.       when mode = COMMAND_UNDO then UNDO
  118.       when mode = COMMAND_REDO then REDO
  119.       when mode = COMMAND_POS_SOW then do
  120.          PREV WORD
  121.          NEXT WORD
  122.          end
  123.       when mode = COMMAND_POS_EOW then NEXT WORD
  124.       when mode = COMMAND_POS_SOL then BEG OF LINE
  125.       when mode = COMMAND_POS_EOL then call END OF LINE
  126.       when mode = COMMAND_POS_SOF then BEG OF FILE
  127.       when mode = COMMAND_POS_EOF then call END OF FILE
  128.       when mode = COMMAND_NEXT_WORD then NEXT WORD
  129.       when mode = COMMAND_NEXT_SENTENCE then NEXT SENTENCE
  130.       when mode = COMMAND_NEXT_PARAGRAPH then NEXT PARAGRAPH
  131.       when mode = COMMAND_NEXT_PAGE then NEXT PAGE
  132.       when mode = COMMAND_PREV_WORD then PREV WORD
  133.       when mode = COMMAND_PREV_SENTENCE then PREV SENTENCE
  134.       when mode = COMMAND_PREV_PARAGRAPH then PREV PARAGRAPH
  135.       when mode = COMMAND_PREV_PAGE then PREV PAGE
  136.       when mode = COMMAND_GOTOBOOKMARK1 then JUMP MARK 1
  137.       when mode = COMMAND_GOTOBOOKMARK2 then JUMP MARK 2
  138.       when mode = COMMAND_GOTOBOOKMARK3 then JUMP MARK 3
  139.       when mode = COMMAND_GOTOBOOKMARK4 then JUMP MARK 4
  140.       when mode = COMMAND_SETBOOKMARK1 then do
  141.          STATUS MARKX1
  142.          STATUS MARKY1
  143.          end
  144.       when mode = COMMAND_SETBOOKMARK2 then do
  145.          STATUS MARKX2
  146.          STATUS MARKY2
  147.          end
  148.       when mode = COMMAND_SETBOOKMARK3 then do
  149.          STATUS MARKX3
  150.          STATUS MARKY3
  151.          end
  152.       when mode = COMMAND_SETBOOKMARK4 then do
  153.          STATUS MARKX4
  154.          STATUS MARKY4
  155.          end
  156.       when mode = COMMAND_UPPERLOWERMARKED then CHANGE CASE MARKED
  157.       when mode = COMMAND_UPPERLOWERWORD then CHANGE CASE WORD
  158.       when mode = COMMAND_UPPERLOWERCHAR then CHANGE CASE LETTER
  159.       when mode = COMMAND_LOWERMARKED then LOWER CASE MARKED
  160.       when mode = COMMAND_LOWERWORD then LOWER CASE WORD
  161.       when mode = COMMAND_LOWERCHAR then LOWER CASE LETTER
  162.       when mode = COMMAND_UPPERMARKED then UPPER CASE MARKED
  163.       when mode = COMMAND_UPPERWORD then UPPER CASE WORD
  164.       when mode = COMMAND_UPPERCHAR then UPPER CASE LETTER
  165.       when mode = COMMAND_START then PASTE
  166.       when mode = COMMAND_JUMPTOLINE then JUMP TO LINE value
  167.       when mode = COMMAND_JUMPTOCOLUMN then do
  168.          STATUS CURSORLINE
  169.          JUMPTO result+1 value
  170.          end
  171.       when mode = COMMAND_JUMPTOBYTE then JUMP TO BYTE value
  172.       when mode = COMMAND_INSERTTEXT then TEXT value
  173.       when mode = COMMAND_INSERTMODE then INSERT MODE
  174.       when mode = COMMAND_OPEN then OPEN 1 value
  175.       when mode = COMMAND_SAVE then SAVE value
  176.       when mode = COMMAND_COMMAND_MACRO_MARKALL then do
  177.          MARK
  178.          if RESULT = 1 then MARK
  179.          BEG OF FILE
  180.          MARK
  181.          if RESULT = 0 then MARK
  182.          call END OF FILE
  183.          end
  184.       when mode = COMMAND_COMMAND_MACRO_MARKTHISWORD then do
  185.          MARK
  186.          if RESULT = 1 then MARK
  187.          PREV WORD
  188.          NEXT WORD
  189.          MARK
  190.          if RESULT = 0 then MARK
  191.          NEXT WORD
  192.          end
  193.       when mode = COMMAND_COMMAND_MACRO_MARKNEXTWORD then do
  194.          MARK
  195.          if RESULT = 1 then MARK
  196.          NEXT WORD
  197.          MARK
  198.          if RESULT = 0 then MARK
  199.          NEXT WORD
  200.          end
  201.       when mode = COMMAND_COMMAND_MACRO_MARKPREVWORD then do
  202.          MARK
  203.          if RESULT = 1 then MARK
  204.          PREV WORD
  205.          MARK
  206.          if RESULT = 0 then MARK
  207.          PREV WORD
  208.          NEXT WORD
  209.          end
  210.       when mode = COMMAND_COMMAND_MACRO_MARKLINE then do
  211.          MARK
  212.          if RESULT = 1 then MARK
  213.          BEG OF LINE
  214.          MARK
  215.          if RESULT = 0 then MARK
  216.          DOWN
  217.          end
  218.       when mode = COMMAND_COMMAND_MACRO_MARKLINEBEGIN then do
  219.          MARK
  220.          if RESULT = 0 then MARK
  221.          BEG OF LINE
  222.          end
  223.       when mode = COMMAND_COMMAND_MACRO_MARKLINEEND then do
  224.          MARK
  225.          if RESULT = 0 then MARK
  226.          call END OF LINE
  227.          end
  228.       when mode = COMMAND_COMMAND_MACRO_MARKTOPTOCURSOR then do
  229.          MARK
  230.          if RESULT = 0 then MARK
  231.          BEG OF FILE
  232.          end
  233.       when mode = COMMAND_COMMAND_MACRO_MARKCURSORTOEND then do
  234.          MARK
  235.          if RESULT = 0 then MARK
  236.          call END OF FILE
  237.          end
  238.       otherwise nop
  239.    end
  240. end
  241.  
  242. if mode < 100 then do
  243.    outvalue = result
  244.    Open(output, "RAM:T/Emperor_RexxOutput.tmp", Write)
  245.    Writeln(output, outvalue)
  246.    Close(output)
  247. end
  248.  
  249. exit
  250.